OpenCV On Android最佳环境配置指南(Android Studio篇) | 您所在的位置:网站首页 › android studio 报错NDK › OpenCV On Android最佳环境配置指南(Android Studio篇) |
简介
本文是《OpenCV On Android最佳环境配置指南》 系列教程第二篇,也是配置系列的最后一篇,适合使用Android Studio的开发人员学习。 本教程是经过本人多次踩坑,并结合网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习OpenCV的朋友们少走弯路。如果配置上遇到问题,可在评论中留言,我将尽力帮助解决。 如果您使用的是Eclipse,请参考上一章OpenCV On Android最佳环境配置指南(Eclipse篇)。 如有转载,请标明出处 (更新时间:2020-10-12) 环境 电脑:Windows10 Java:jdk1.8.0_172 Android Studio:Version 4.0.2 SDK:Android Studio 4.0.2自带的最新SDK (请不要与Eclipse同用一SDK,以免出错)。 NDK:Android Studio 4.0.2自带的最新NDK OpenCV:V4.4.0注:以上配置向上兼容,读者可使用更新的版本,但低版本可能出现错误 配置前说明:本次配置不像上篇介绍Eclipse配置环境那样编写多个Demo,而是通过一个Demo,将OpenCV的Java和NDK配置方式全部讲完,尽可能手把手讲解,请大家不要跳跃式地阅读。 一、安装必要组件 打开Android Studio设置界面,进入Appearance & Behavior -> System Settings -> Android SDK。 将选项条切换到SDK Tools,勾上左下角的Show Package Details,然后按下图勾选:点击OK,开始下载。下载完后,就可以开始创建项目了。 二、创建Android Studio工程Create New Project,选择最后面的Native C++模板,然后进入配置界面。 这一步需要注意两个地方 1、包名:请尽量与我保持一致,否则新手容易出错。 2、最小SDK:OpenCV 4.2.0要求最小SDK不小于21。 直接Finish,项目创建成功! 提示:项目创建完成后,最好运行一下,确保基本环境没问题。 三、OpenCV Java库使用指南 3.1、环境配置第一步:将OpenCV Java库作为Module导入。 具体步骤为:File->New->Import Module,然后将OpenCV-android-sdk\sdk\java目录导入。如下图,然后Next->Finish。 第二步:修改模块名。 默认导入的模块名为java,为了方便区分,建议修改成opencv,只需在java模块右键,然后Refactor->Rename 第二步:将导入的opencv模块从application改成library,步骤如下: 1、将文件预览方式切换至Android。 2、打开opencv的build.gradle文件。 3、将apply plugin: 'com.android.application'修改成apply plugin: 'com.android.library'。 4、删除(或注释)掉defaultConfig内容。 5、将Run/Debug Configurations从opencv切换到app。 6、点击Sync Now使修改生效。 第三步:给项目添加opencv依赖 菜单File->Project Structure,在Dependencies中选择app,点击+,选择Module dependency,然后勾选opencv模块,点击OK即可!如下图: 在AndroidManifest.xml文件中添加权限: .... .... 复制代码将activity_main.xml内容修改为以下内容: 复制代码将MainActivity.java改为以下内容: public class MainActivity extends CameraActivity implements CameraBridgeViewBase.CvCameraViewListener2 { private JavaCameraView javaCameraView; private BaseLoaderCallback baseLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { javaCameraView.enableView(); } break; default: super.onManagerConnected(status); break; } } }; @Override protected List |
CopyRight 2018-2019 实验室设备网 版权所有 |